/**
 * 项目名称: Topic_567.cpp
 * 项目路径: study/DataStructure/刷题/一轮/第十二天 数组+双指针(滑动窗口)
 * 编辑时间: 2024年09月13日20时22分39秒
 * 用   户: 轻尘
 */

#include <bits/stdc++.h>

using namespace std;

class Solution {
public:
    bool checkInclusion(string s1, string s2) {
        char* s1p = &s1[0];
        char* s2p = &s2[0];

        int p[30];

        for(int i = 0 ; i < s1.size();i++)p[*(s1p+i)-'a']++;

        int pre = 0, next = 0;
        bool flag = false;
        for(int i = 0 ; i < s2.size();i++)
        {
            next = i;
            if(next - pre == s1.size()-1)
            {
                int q[30]={0};
                bool tmp = true;
                for(int j = pre;j<=next;j++)q[s2[j]-'a']++;
                for(int j = 0;j<30;j++)
                    if(p[j]!=q[j])
                    {
                        tmp = false;
                        break;
                    }
                if(tmp)return tmp;
                pre++;
            }
        }
        return flag;
    }
};